home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-08-22 | 63.3 KB | 2,414 lines |
- This is a new archive version of TRN at patchlevel 3.
- The original posting took up Volume23, issues 60 to 73, with
- various problems. These files replace those issues.
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then feed it
- # into a shell via "sh file" or similar. To overwrite existing files,
- # type "sh file -c".
- # The tool that generated this appeared in the comp.sources.unix newsgroup;
- # send mail to comp-sources-unix@uunet.uu.net if you want that tool.
- # Contents: README Configure.2 head.h patchlevel zab
- # Wrapped by rsalz@litchi.bbn.com on Fri Aug 23 16:38:48 1991
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- echo If this archive is complete, you will see the following message:
- echo ' "shar: End of archive 1 (of 14)."'
- if test -f 'README' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'README'\"
- else
- echo shar: Extracting \"'README'\" \(9074 characters\)
- sed "s/^X//" >'README' <<'END_OF_FILE'
- X Trn Kit, Version 1.0
- X
- X Copyright (c) 1985, Larry Wall
- X Copyright (c) 1990, Wayne Davison
- X
- XYou may copy the trn kit in whole or in part as long as you don't try to
- Xmake money off it, or pretend that you wrote it.
- X--------------------------------------------------------------------------
- X
- XPlease read all the directions in this file (following the brief description
- Xof trn) before you proceed with the installation. Failure to do so may void
- Xyour warranty. :-)
- X
- XAfter you have unpacked your kit, you should have all the files listed
- Xin MANIFEST.
- X
- X
- XWhat is trn?
- X------------
- XTrn is "Threaded RN" -- a newsreader that uses an article's "References:"
- Xto order the discussions in a very natural, reply-ordered sequence called
- X"threads." Having the replies associated with their parent articles not
- Xonly makes following the discussion easier, but also makes it easy to back-
- Xtrack and (re-)read a specific discussion from the beginning. Trn also
- Xhas a visual representation of the current thread in the upper right corner
- Xof the header, which will give you a feel for how the discussion is going
- Xand how the current article is related to the last one you read.
- X
- XIn addition, a thread browser/selector has been added to make life in the big
- Xnewsgroups much easier to live with. It also allows you to quickly browse
- Xthrough already-read articles and select the one(s) you wish to read again.
- XOther new features include an extract command for the source and binary groups,
- Xthread-oriented kill directives, and additional "magic" in the header display.
- X
- XTo use all the new features of trn will require the maintenance of a thread
- Xdatabase, which is handled by the included database manager. The amount of
- Xspace required is around 5% of your newsspool size (either in /usr/spool/news
- Xor on another partition), but you can choose to only keep thread information
- Xfor a select portion of the newsgroups if you wish -- unthreaded groups are
- Xread in an rn-compatible manner.
- X
- XTrn can be optionally compiled as trrn -- a NNTP-compatible newsreader that
- Xlets you access news from a remote news server. Each client machine must
- Xmaintain their own database, either via the NNTP version of the database
- Xmanager, or by sharing the server's thread files through some other means.
- X
- XTrn is based on the source to Larry Wall's rn (patchlevel 47), and the threaded
- Xextensions are fully conditionalized. Thus, it is possible to use this source
- Xto compile both trn and (a slightly enhanced version of) rn. In fact, it is
- Xpossible to install trn as both rn and trn (linked together) to maintain only
- Xone newsreader on a system where people wish to continue to use rn.
- X
- XAlso, I'd like to publicly thank all the people who have helped me in testing
- Xtrn -- without their input, trn would have been much less compatible with all
- Xthe Unix and Xenix systems out there, and not as easy to use:
- X
- XBrandon S. Allbery, Chip Rosenthal, Chip Salzenberg, David C Lawrence,
- XEric Schnoebelen, George H. Martin, Guy Harris, Jason Molenda, Jaye Mathisen,
- XJeff Sparkes, Jon Zeeff, Kurt Gollhardt, Linus Tolke, Mitchell F. Wyle.
- X
- XThanx guys!
- X
- X
- XInstallation
- X------------
- X0) Decide if you want to compile the newsreader as trrn (threaded remote
- X rn) to read its articles using NNTP from a news server, or as regular
- X trn to read the articles from the news spool directory (which could be
- X mounted locally or via NFS). The thread database created by mthreads
- X must be accessable on each machine, which means that NNTP machines will
- X need to maintain a local copy (usually by running the NNTP version of
- X mthreads), or share a common copy. By choosing to create trrn (at the
- X appropriate prompt in Configure), you will enable the NNTP code in both
- X trn and mthreads. Be sure you have installed your NNTP client (including
- X the NNTP inews and the file that contains the name of the NNTP server)
- X before running Configure. Trrn expects at least NNTP version 1.5.
- X
- X Decide if you want to install trn as both rn and trn linked together.
- X It is possible to configure trn to check the first letter of its name
- X and only turn on the threaded extensions if it is a 't'. Thus, you
- X only have to maintain one newsreader package that is both a "normal"
- X rn and has all the extensions of trn available for the asking.
- X
- X Also decide where you want to put the thread files. The recommended
- X spot for people with over 5% of your /usr/spool/news size free is to
- X place a ".thread" file in each spool directory. The other alternative
- X is to create a directory for them (possibly on another drive) and enter
- X this path at the appropriate Configure question. Remember that you are
- X not required to create thread files for all groups. Some sites choose
- X to only thread high-volume discussion groups (see the mthreads manpage),
- X which will lower the amount of space required for thread files.
- X
- X ** If you got trn in shar format, check Configure to ensure that WHITE
- X and CTRLA have a Tab-Space and a Ctrl-A in them, respectively. **
- X
- X1) Run Configure. This will figure out various things about your system.
- X Some things Configure will figure out for itself, other things it will
- X ask you about. It will then proceed to make config.h, config.sh, Makefile,
- X and a bunch of shell scripts. It will also do a make depend for you, or
- X let you start one in the background. You might possibly have to trim #
- X comments from the front of Configure if your sh doesn't handle them, but
- X all other # comments will be taken care of.
- X
- X2) Glance through config.h and common.h to make sure system dependencies
- X are correct. Most of them should have been taken care of by running
- X the Configure script.
- X
- X If you have any additional changes to make to the C definitions, they
- X can be done in the Makefile, in config.h, or in common.h. If you have
- X strange mailboxes on your system you should modify mbox.saver to correctly
- X append an article to a mailbox or folder.
- X
- X If you are on a machine with limited address space, you may have to
- X remove some of the special functions of trn to make it fit. This is
- X easily done by undefining symbols in the System Dependencies section
- X of common.h. You should run "make depend" again to be safe.
- X
- X3) make
- X
- X This will attempt to make trn in the current directory.
- X
- X4) make install
- X
- X This will put trn, newsetup, newsgroups, Pnews, and Rnmail into a public
- X directory (normally /usr/local/bin), and put a number of files -- including
- X mthreads (the database manager executable) -- into the private trn library
- X (e.g. /usr/local/lib/trn). It will also try to put the man pages in a
- X reasonable place.
- X
- X5) Once trn is compiled, you need to create some thread data to be
- X able to use all the new features. If you like, you can start small
- X with a command like: "mthreads rec.humor.funny", process a few more
- X groups with the command "mthreads news", and then turn them all on
- X with the command "mthreads all". Read the mthreads manpage for
- X complete details.
- X
- X6) Read the trn manual entry before running trn, or at least read the file
- X NEW if you are already familiar with rn.
- X
- X7) Try trn, and play with some of the switches. You may want to make -X
- X the default on your system (you might have done this already in Configure).
- X This is done by changing SELECT_INIT in config.h. You may also want to
- X modify which header lines are displayed by default and which are magic --
- X This is done in head.h.
- X
- X To change default values of enviroment variables on a system-wide basis
- X without recompiling trn, put the switches into the file INIT in the trn
- X library.
- X
- X8) Arrange to have the mthreads command of your choosing run on a regular
- X basis. If you run with the daemon flag, you can start it from the boot
- X sequence (make sure it is su'ed appropriately), or even run it daily
- X out of cron (if it's already running, the new version will exit). If
- X you run mthreads in single-pass mode, you'll want to have cron execute
- X it on a regular basis with the standard-output redirected to /dev/null.
- X
- X9) IMPORTANT! Help save the world! Communicate any problems and suggested
- X patches to Wayne Davison (davison@borland.com) so we can keep
- X everyone in sync. If you have a problem, there's someone else
- X out there who either has had or will have the same problem. Please
- X don't bother either Larry Wall or Stan Barber with bugs that you
- X find in trn. If the bug is applicable to mainstream rn code, I
- X will pass it along.
- X
- X If possible, send in patches such that the patch program will apply them.
- X Context diffs are the best, then normal diffs. Don't send ed scripts--
- X I've probably changed my copy since the version you have.
- X
- X Watch for trn patches in news.software.b or comp.sources.bugs. Patches
- X will always be in context diff format, to be applied by the patch program.
- X
- X10) If you are going to hack on trn, please refer to rn's HACKERSGUIDE first.
- END_OF_FILE
- if test 9074 -ne `wc -c <'README'`; then
- echo shar: \"'README'\" unpacked with wrong size!
- fi
- # end of 'README'
- fi
- if test -f 'Configure.2' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'Configure.2'\"
- else
- echo shar: Extracting \"'Configure.2'\" \(43215 characters\)
- sed "s/^X//" >'Configure.2' <<'END_OF_FILE'
- X*) dflt="$domain" ;;
- Xesac
- X$echo $n "Your domain: [$dflt] $c"
- X. myread
- Xcase "$ans" in
- X'') domain="$dflt";;
- X*) domain="$ans" ;;
- Xesac
- X
- X: now get the site name
- X$echo " "
- X$echo "Figuring out site name..."
- X$echo 'Maybe "hostname" will work...'
- Xif ans=`sh -c hostname 2>&1` ; then
- X thissite=$ans
- X hostcmd=hostname
- Xelse
- X $echo 'No, maybe "uuname -l" will work...'
- X if ans=`sh -c 'uuname -l' 2>&1` ; then
- X thissite=$ans
- X hostcmd='uuname -l'
- X else
- X $echo 'Strange. Maybe "uname -n" will work...'
- X if ans=`sh -c 'uname -n' 2>&1` ; then
- X thissite=$ans
- X hostcmd='uname -n'
- X else
- X $echo 'Oh well, maybe I can mine it out of whoami.h...'
- X if ans=`sh -c $contains' sysname /usr/include/whoami.h' 2>&1` ; then
- X thissite=`$echo "$ans" | $sed 's/^.*"\(.*\)"/\1/'`
- X hostcmd="sed -n -e '"'/sysname/s/^.*\"\\(.*\\)\"/\1/{'"' -e p -e q -e '}' </usr/include/whoami.h"
- X else
- X case "$sitename" in
- X '') $echo "Does this machine have an identity crisis or something?"
- X hostcmd=''
- X ;;
- X *) $echo "Well, you said $sitename before..."
- X thissite="$sitename"
- X ;;
- X esac
- X fi
- X fi
- X fi
- Xfi
- X: you do not want to know about this
- Xset $thissite
- Xthissite=$1
- X
- X: translate upper to lower case. This is mostly to help UUCP work right.
- Xcase $thissite in
- X *[A-Z]*)
- X thissite=`$echo $thissite | tr '[A-Z]' '[a-z]'`
- X $echo "(Normalizing case in your site name)"
- X ;;
- Xesac
- X
- X: verify site name and allow them to override it
- Xif $test "$thissite" ; then
- X $echo 'Your site name appears to be "'$thissite'".'
- Xelse
- X thissite='unknown'
- Xfi
- Xcase "$hostfile" in
- X/*) dflt="$hostfile" ;;
- X*) case "$sitename" in
- X '') dflt="$thissite" ;;
- X *) dflt="$sitename" ;;
- X esac
- Xesac
- X$cat <<'EOM'
- X
- XIn some cases it is not desirable to use the actual site name in your return
- Xaddresses (if, for example, all mail gets routed first to one site). In this
- Xcase trn allows you to either hard-wire a site name or read the site name from
- Xa file. To indicate a file, start the name with a slash (e.g. /etc/sitename).
- XTo use just your domain name, re-enter it here. A period-less site name will
- Xautomatically get your domain name added to it.
- X
- XEOM
- Xwhile $test $dflt ; do
- X $echo $n "What site name goes in return addresses? [$dflt] $c"
- X . myread
- X case $ans in
- X '') ans=$dflt;;
- X esac
- X case $ans in
- X /*)
- X if $test -f $ans ; then
- X hostfile="$ans"
- X hostcmd="$cat $ans"
- X sitename=`$hostcmd`
- X $echo "Trn will read the site name from $ans: $sitename."
- X dflt=''
- X else
- X $echo "Unable to locate $ans."
- X fi
- X ;;
- X *) hostfile=''
- X if $test "X$thissite" = "X$ans" ; then
- X sitename="$thissite"
- X $echo "Using the site name derived by $hostcmd: $sitename."
- X else
- X hostcmd=''
- X sitename="$ans"
- X $echo "Using a hard-wired site name: $sitename."
- X fi
- X dflt=''
- X ;;
- X esac
- Xdone
- X
- Xif $test $portable = "undef" ; then
- X case $sitename in
- X *.*) ;;
- X *) sitename=$sitename.$domain
- X ;;
- X esac
- Xfi
- X
- Xcase $hiddennet in
- Xdefine) dflt=y;;
- X*) dflt=n;;
- Xesac
- X$echo "Do you want your site ($sitename) to be hidden in"
- X$echo $n "domain '$domain'? [$dflt] $c"
- X. myread
- Xcase $ans in
- X '') ans=$dflt ;;
- Xesac
- Xcase $ans in
- Xy*) hiddennet=define
- X sitename=$domain
- X ;;
- X*) hiddennet=undef
- X ;;
- Xesac
- X
- X: get organization name
- Xlongshots='/usr/src/new /usr/src/local /usr/local/src'
- Xcase "$orgname" in
- X'') if xxx=`loc news/src/defs.h x $longshots`; then
- X dflt=`$sed -n 's/^.*MYORG[ ]*"\(.*\)".*$/\1/p' $xxx`
- X else
- X dflt='no default'
- X fi
- X ;;
- X*) dflt="$orgname";;
- Xesac
- X$cat << 'EOH'
- X
- XPlease type the name of your organization as you want it to appear on the
- XOrganization line of outgoing articles. (It's nice if this also specifies
- Xyour location. Your city name is probably sufficient if well known.)
- XFor example:
- X
- X University of Southern North Dakota, Hoople
- X
- XYou may also put the name of a file, as long as it begins with a slash.
- XFor example:
- X
- X /etc/organization
- X
- XEOH
- Xorgname="no default"
- Xwhile test "X$orgname" = "Xno default"; do
- X $echo $n "Organization: [$dflt] $c"
- X . myread
- X case "$ans" in
- X '') orgname="$dflt";;
- X *) orgname="$ans" ;;
- X esac
- Xdone
- X
- X: get news administrator name
- Xcase "$newsadmin" in
- X'')
- X if $contains "^news:" /etc/passwd >/dev/null 2>&1 ; then
- X dflt=news
- X else
- X if $contains "^usenet:" /etc/passwd >/dev/null 2>&1 ; then
- X dflt=usenet
- X else
- X if eunice; then
- X dflt=system
- X else
- X dflt=root
- X fi
- X fi
- X fi
- X ;;
- X*) dflt="$newsadmin"
- X ;;
- Xesac
- Xcat <<'EOM'
- X
- XMany systems keep their news in a private directory, or have a non-superuser
- Xin charge of administering news. (If you don't have such a user, take the
- Xdefault answer.) What is the login name (not directory) that is used for news
- XEOM
- X$echo $n "administration? [$dflt] $c"
- X. myread
- Xnewsadmin="$ans"
- Xcase $newsadmin in
- X'') newsadmin=$dflt ;;
- Xesac
- Xcase $newsadmin in
- Xroot) isadmin=undef ;;
- X*) isadmin=define ;;
- Xesac
- X
- X: figure out news library
- Xcase "$lib" in
- X'')
- X dflt=/usr/lib/news
- X ;;
- X*) dflt=$lib ;;
- Xesac
- Xlibexp=$lib
- Xlibexp='blurfl/dyick'
- Xwhile $test ! -d "$libexp"; do
- X $echo " "
- X case "$libexp" in
- X blurfl*) ;;
- X *) $echo "Directory $libexp not found";;
- X esac
- X $echo $n "Where is your news library (~name okay)? [$dflt] $c"
- X . myread
- X case "$ans" in
- X '') ans="$dflt";;
- X esac
- X lib="$ans"
- X case $lib in
- X ~*)
- X libexp=`filexp $lib`
- X $echo "(That is $libexp on this particular system.)"
- X case $portable in
- X undef) lib=$libexp ;;
- X esac
- X ;;
- X *)
- X libexp=$lib
- X ;;
- X esac
- Xdone
- Xif $test -f $libexp/inews; then
- X $echo "Aha! Inews is really in $libexp!"
- X $echo "Maybe this is Bnews 2.10.2 or later."
- X inews=$libexp/inews
- Xfi
- X
- X: determine where manual pages go
- Xcase "$mansrc" in
- X'')
- X dflt=`loc . /usr/man/man1 /usr/man/mann /usr/man/local/man1 /usr/man/u_man/man1 /usr/man/man1`
- X ;;
- X*) dflt="$mansrc"
- X ;;
- Xesac
- Xmansrc='blurfl/dyick'
- Xwhile $test ! -d "$mansrc" ; do
- X case $mansrc in
- X blurfl*) ;;
- X *) $echo "$mansrc does not appear to exist." ;;
- X esac
- X $echo " "
- X $echo $n "Where do the manual pages (source) go? [$dflt] $c"
- X . myread
- X mansrc=`filexp "$ans"`
- X case $mansrc in
- X '') mansrc=$dflt ;;
- X esac
- Xdone
- Xcase "$mansrc" in
- X*l)
- X manext=l
- X ;;
- X*n)
- X manext=n
- X ;;
- X*)
- X manext=1
- X ;;
- Xesac
- X
- X: determine where mail is spooled
- Xcase "$maildir" in
- X'')
- X dflt=`loc . /usr/spool/mail /usr/spool/mail /usr/mail`
- X ;;
- X*) dflt="$maildir"
- X ;;
- Xesac
- Xcase "$dflt" in
- X*%L*) ;;
- X*) dflt="$dflt/%L"
- Xesac
- X$cat <<'EOM'
- X
- XTrn needs to know where to find yet-to-be-read mail. Sendmail sites
- Xuse /usr/spool/mail/%L (where '%L' is the user's login name). Some
- XMMDF sites use /usa/%L/.mail instead.
- X
- XEOM
- X$echo $n "Where is yet-to-be-read mail spooled? [$dflt] $c"
- X. myread
- Xmaildir="$ans"
- Xcase $maildir in
- X'') maildir=$dflt ;;
- Xesac
- X
- X: find out how to find out full name
- X$echo " "
- Xcase "$berknam" in
- Xdefine)
- X dflt=y;;
- Xundef)
- X dflt=n;;
- X*)
- X if bsd || xenix; then
- X dflt=y
- X else
- X dflt=n
- X fi
- X ;;
- Xesac
- X$echo "Does your /etc/passwd file keep full names in Berkeley/V7 format (name first"
- X$echo $n "thing after ':' in GCOS field)? [$dflt] $c"
- X. myread
- Xcase $ans in
- X '') ans=$dflt ;;
- Xesac
- Xcase $ans in
- X y*)
- X passnam=define
- X berknam=define
- X usgnam=undef
- X nametype=bsd
- X ;;
- X *)
- X $echo " "
- X case "$usgnam" in
- X define)
- X dflt=y;;
- X undef)
- X dflt=n;;
- X *)
- X if usg; then
- X dflt=y
- X else
- X dflt=n
- X fi
- X ;;
- X esac
- X $echo "Does your passwd file keep full names in USG format (name sandwiched"
- X $echo $n "between a '-' and a '(')? [$dflt] $c"
- X . myread
- X case $ans in
- X '') ans=$dflt ;;
- X esac
- X case $ans in
- X n*)
- X $echo "Full name will be taken from ~/.fullname"
- X passnam=undef
- X berknam=undef
- X usgnam=undef
- X nametype=other
- X ;;
- X *)
- X passnam=define
- X berknam=undef
- X usgnam=define
- X nametype=usg
- X ;;
- X esac
- X ;;
- Xesac
- X
- X: see if we need a special compiler
- X$echo " "
- Xif usg; then
- X case "$cc" in
- X '')
- X case "$Mcc" in
- X /*) dflt='Mcc'
- X ;;
- X *)
- X if $contains '\-M' $mansrc/cc.1 >/dev/null 2>&1 ; then
- X dflt='cc -M'
- X else
- X dflt='cc'
- X fi
- X ;;
- X esac
- X ;;
- X *) dflt="$cc";;
- X esac
- X $cat <<'EOM'
- X
- XOn some systems the default C compiler will not resolve multiple global
- Xreferences that happen to have the same name. On some such systems the
- X"Mcc" command may be used to force these to be resolved. On other systems
- Xa "cc -M" command is required. What command will force resolution on
- XEOM
- X $echo $n "this system? [$dflt] $c"
- X . myread
- X cc="$ans"
- X case "$cc" in
- X '') cc="$dflt" ;;
- X esac
- Xelse
- X $echo "Not a USG system--assuming cc can resolve multiple definitions."
- X cc=cc
- Xfi
- X
- X: see if we should throw a -i into the Makefile
- X$echo " "
- Xif pdp11; then
- X if $contains '\-i' $mansrc/cc.1 >/dev/null 2>&1 ; then
- X $echo $n "Your system appears to have separate I and D space. Is this true? [y] $c"
- X . myread
- X case $ans in
- X n*|f*) iandd='' ;;
- X *) iandd='-i' ;;
- X esac
- X else
- X $echo "Your system appears to NOT have separate I and D space."
- X $echo $n "Is this correct? [y] $c"
- X . myread
- X case $ans in
- X n*|f*) iandd='-i' ;;
- X *) iandd='' ;;
- X esac
- X fi
- Xelse
- X $echo "Not a pdp11--assuming no separate I and D."
- Xfi
- X
- X: index or strcpy
- X$echo " "
- Xif $contains index.o libc.list >/dev/null 2>&1 ; then
- X $echo "Your system appears to use index() and rindex() rather than strchr()"
- X $echo $n "and strrchr(). Is this correct? [y] $c"
- X . myread
- X case $ans in
- X n*|f*) strchr='define' ;;
- X *) strchr='undef' ;;
- X esac
- Xelse
- X $echo "Your system appears to use strchr() and strrchr() rather than index()"
- X $echo $n "and rindex(). Is this correct? [y] $c"
- X . myread
- X case $ans in
- X n*|f*) strchr=undef ;;
- X *) strchr=define ;;
- X esac
- Xfi
- X
- X: bcopy/bzero or memcpy/memset
- X$echo " "
- Xif $contains bcopy.o libc.list >/dev/null 2>&1 ; then
- X $echo "Your system appears to use bcopy() and bzero() rather than memcpy()"
- X $echo $n "and memset(). Is this correct? [y] $c"
- X . myread
- X case $ans in
- X n*|f*) memcpy='define' ;;
- X *) memcpy='undef' ;;
- X esac
- Xelse
- X $echo "Your system appears to use memcpy() and memset() rather than bcopy()"
- X $echo $n "and bzero(). Is this correct? [y] $c"
- X . myread
- X case $ans in
- X n*|f*) memcpy='undef' ;;
- X *) memcpy='define' ;;
- X esac
- Xfi
- X
- X: check for S5-style timezone handling - current offset from GMT in
- X: external variable "timezone" rather than gotten with "ftime".
- X$echo " "
- Xif $contains tzname /usr/include/time.h >/dev/null 2>&1 ; then
- X $echo "Your system appears to get the current timezone's offset"
- X $echo "from GMT from the external variable timezone rather than"
- X $echo "by calling ftime() or gettimeofday()."
- X $echo $n "Is this correct? [y] $c"
- X . myread
- X case $ans in
- X n*|f*) tzset='undef' ;;
- X *) tzset='define' ;;
- X esac
- Xelse
- X $echo "Your system appears to get the current timezone's offset"
- X $echo "from GMT by calling ftime() or gettimeofday() rather than"
- X $echo "from the external variable timezone."
- X $echo $n "Is this correct? [y] $c"
- X . myread
- X case $ans in
- X n*|f*) tzset='define' ;;
- X *) tzset='undef' ;;
- X esac
- Xfi
- X
- X: determine how to determine when a file is a mailbox
- Xcase "$mboxchar" in
- X'') dflt=F;;
- X*) dflt="$mboxchar";;
- Xesac
- X$cat <<'EOM'
- X
- XIn saving articles, trn wants to differentiate between saving to mailbox
- Xformat files and normal files. It does this by examining the first character
- Xof the file in question. On most systems the first line starts "From...",
- Xso the first character is F. On other systems there are magic cookies like
- Xcontrol codes between articles, so one of those would be first. For example,
- XMMDF messages are separated with lines of 4 control-A's. On your system, if a
- XEOM
- X$echo $n "file is in mailbox format, what is the first character of that file? [$dflt] $c"
- X. myread
- Xmboxchar="$ans"
- Xcase $mboxchar in
- X'') mboxchar="$dflt" ;;
- Xesac
- Xcase $mboxchar in
- X'F') ;;
- X"$CTRLA") ;;
- X*) cat <<'EOM'
- XYou will need to edit the shell script mbox.saver to properly append an
- Xarticle to a mailbox. The arguments to the script are documented in
- XEOM
- X case $shsharp in
- X false)
- X $echo "comments in mbox.saver.std."
- X ;;
- X true)
- X $echo "comments in the shell script itself."
- X ;;
- X esac
- Xesac
- X$rm -f grimble
- X: where do we get termlib routines from
- X$echo " "
- Xans=`loc libcurses.a x /usr/lib /usr/local/lib /lib`
- Xcase "$ans" in
- X/*)
- X ar t $ans >grimble
- X if $contains tputs.o grimble >/dev/null 2>&1; then
- X termlib='-lcurses'
- X havetlib=define
- X $echo "Terminfo library found."
- X else
- X ans=x
- X fi
- X ;;
- Xesac
- Xcase "$ans" in
- Xx)
- X ans=`loc libtermlib.a x /usr/lib /usr/local/lib /lib`
- X case "$ans" in
- X /usr/lib*|/lib*)
- X termlib='-ltermlib'
- X havetlib=define
- X $echo "Termlib library found."
- X ;;
- X /*)
- X termlib="$ans"
- X havetlib=define
- X $echo "Termlib library found."
- X ;;
- X *)
- X if xenix; then
- X ans=/lib/Llibtermcap.a
- X else
- X ans=`loc libtermcap.a x /usr/lib /usr/local/lib /lib`
- X fi
- X case "$ans" in
- X /usr/lib*|/lib*)
- X termlib='-ltermcap'
- X havetlib=define
- X $echo "Termcap library found."
- X ;;
- X /*)
- X termlib="$ans"
- X havetlib=define
- X $echo "Termcap library found."
- X ;;
- X *)
- X case "$termlib" in
- X '')
- X $echo $n "Your system appears to NOT have termlib-style routines. Is this true? [y] $c"
- X . myread
- X case $ans in
- X n*|f*) havetlib=define
- X $echo "Then where are the termlib-style routines kept (specify either -llibname"
- X $echo $n " or full pathname (~name ok))? $c"
- X . myread
- X termlib=`filexp $ans`
- X ;;
- X *) havetlib=undef
- X termlib=''
- X $echo "You will have to play around with term.c then."
- X ;;
- X esac
- X $echo " "
- X ;;
- X *) $echo "You said termlib was $termlib before."
- X ;;
- X esac
- X ;;
- X esac
- X ;;
- X esac
- X ;;
- Xesac
- X: see if there is a whoami file
- Xif $test -r /usr/include/whoami.h ; then
- X whoami=define
- X $echo "whoami.h found."
- Xelse
- X whoami=undef
- Xfi
- X
- X: see if this is a termio system
- Xultrix ; ultrix=$?
- Xsun ; sun=$?
- Xpyr ; pyr=$?
- Xif $test -r /usr/include/termio.h -a $ultrix -ne 0 -a $sun -ne 0 -a $pyr -ne 0; then
- X termio=define
- X $echo "termio.h found."
- X else
- X if $test -r /usr/include/sgtty.h ; then
- X termio=undef
- X $echo "sgtty.h found."
- X else
- X termio=undef
- X $echo "Neither termio.h nor sgtty.h found--you could have problems."
- X fi
- Xfi
- X
- X: see if this system has fcntl
- Xif $test -r /usr/include/fcntl.h ; then
- X fcntl=define
- X $echo "fcntl.h found."
- Xelse
- X fcntl=undef
- X $echo "No fcntl.h found, but that's ok."
- Xfi
- X
- X: see if ioctl defs are in sgtty/termio or sys/ioctl
- Xif $test -r /usr/include/sys/ioctl.h ; then
- X ioctl=define
- X $echo "sys/ioctl.h found."
- Xelse
- X ioctl=undef
- X $echo "sys/ioctl.h not found, assuming ioctl args are defined in sgtty.h."
- Xfi
- X
- X: see if ptem.h exists
- Xif $test -r /usr/include/sys/ptem.h ; then
- X ptem=define
- X $echo "sys/ptem.h found."
- Xelse
- X ptem=undef
- Xfi
- X
- X: see if the system has sigblock
- Xif $contains sigblock.o libc.list >/dev/null 2>&1 ; then
- X $echo "sigblock() found."
- X sigblock=define
- Xelse
- X sigblock=undef
- Xfi
- X
- X: see if the system has getwd
- Xif $contains getwd.o libc.list >/dev/null 2>&1 ; then
- X $echo "getwd() found."
- X getcwd=undef
- X getwd=define
- Xelse
- X: see if the system has getcwd
- Xif $contains getcwd.o libc.list >/dev/null 2>&1 ; then
- X $echo "getcwd() found."
- X getcwd=define
- X getwd=undef
- Xelse
- X getcwd=undef
- X getwd=undef
- Xfi
- Xfi
- X
- X: see if there is a vfork
- Xif $contains vfork.o libc.list >/dev/null 2>&1 ; then
- X $echo "vfork() found."
- X novfork='undef'
- Xelse
- X if next; then
- X $echo "I know NeXTs have vfork()!"
- X novfork='undef'
- X else
- X $echo "No vfork() found--will use fork() instead."
- X novfork='define'
- X fi
- Xfi
- X
- X: check for rename
- Xif $contains rename.o libc.list >/dev/null 2>&1 ; then
- X $echo "rename() found."
- X rename='define'
- Xelse
- X $echo "No rename() found -- we'll emulate it."
- X rename='undef'
- Xfi
- X
- X: check for truncate
- Xif $contains truncate.o libc.list >/dev/null 2>&1 ; then
- X $echo "truncate() found."
- X truncate='define'
- Xelse
- X $echo "No truncate() found -- we'll emulate it."
- X truncate='undef'
- Xfi
- X
- X: see if YP could be running here
- Xif $contains yp_master.o libc.list >/dev/null 2>&1 ; then
- X $echo "YP may be running -- will use getpwent(), just in case."
- X getpwent='define'
- Xelse
- X: see if there is a getpw
- Xif $contains getpw.o libc.list >/dev/null 2>&1 ; then
- X $echo "getpw() found."
- X getpwent='undef'
- Xelse
- X $echo "No getpw() found--will use getpwent() instead."
- X getpwent='define'
- Xfi
- Xfi
- X
- X: default
- Xsigret=int
- X: determine type of signal function
- Xif [ -f /usr/include/signal.h ]
- Xthen
- X $cpp /usr/include/signal.h >sigtest
- Xelse
- Xif [ -f /usr/include/sys/signal.h ]
- Xthen
- X $cpp /usr/include/sys/signal.h >sigtest
- Xfi
- Xfi
- Xif grep "$WHITE*void$WHITE*(\*signal())();" sigtest >/dev/null
- Xthen
- X sigret=void
- Xfi
- X$echo "signal() returns $sigret on this system"
- X: see how we will look up site name
- Xdouname=undef
- Xgethostname=undef
- Xphostname=undef
- Xif $test ! "X$hostfile" = X ; then
- X gethostname=define
- Xelse
- Xif $test "X$hostcmd" = X ; then
- X : it is already compiled in
- Xelse
- Xif $contains gethostname.o libc.list >/dev/null 2>&1 ; then
- X $echo "gethostname() found."
- X gethostname=define
- Xelse
- X if $contains uname.o libc.list >/dev/null 2>&1 ; then
- X $echo "uname() found."
- X douname=define
- X else
- X case $hostcmd in
- X '') ;;
- X *)
- X $cat <<EOT
- X
- XThere is no gethostname() or uname() on this system. You have two
- Xpossibilites at this point:
- X
- X1) You can have your site name ($sitename) compiled into trn, which lets
- X trn start up faster, but makes your binaries non-portable, or
- X2) you can have trn use a
- X
- X popen("$hostcmd","r")
- X
- X which will start slower but be more portable.
- X
- XOption 1 will use whoami.h if you have one. If you want option 2 but with
- Xa different command, you can edit config.h after this shell script is done.
- X
- XEOT
- X case "$phostname" in
- X define) dflt=n;;
- X undef) dflt=y;;
- X '')
- X case $portable in
- X define) dflt=n ;;
- X *) dflt=y ;;
- X esac
- X ;;
- X esac
- X $echo $n "Do you want your site name compiled in? [$dflt] $c"
- X . myread
- X case $ans in
- X '') ans=$dflt;;
- X esac
- X case $ans in
- X n*) phostname=define ;;
- X *) hostcmd='' phostname=undef;;
- X esac
- X ;;
- X esac
- X case $hostcmd in
- X '')
- X case $whoami in
- X define)
- X $echo 'No hostname function--using whoami.h.'
- X ;;
- X undef)
- X $echo 'No hostname function--hardwiring "'$sitename'".'
- X ;;
- X esac
- X ;;
- X esac
- X fi
- Xfi
- Xfi
- Xfi
- X
- X: see if we need -ljobs and if we have sigset, etc.
- Xif $test -r /usr/lib/libjobs.a || $test -r /usr/local/lib/libjobs.a ; then
- X $echo "Jobs library found."
- X normsig=undef
- X jobslib='-ljobs'
- Xelse
- X if bsd; then
- X $echo "No jobs library found. (I suppose this is at least 4.2...)"
- X else
- X $echo "No jobs library found. (That's okay, we all have our faults.)"
- X fi
- X normsig=define
- X jobslib=''
- Xfi
- X: set the right options for cc and include the x library for XENIX
- Xif xenix; then
- X if $test -d /lib/386 ; then
- X iandd="-M3e"
- X else
- X: iandd="-M2let8 -LARGE -F 3000"
- X iandd="-Ml2et32 -LARGE -F B000"
- X fi
- X jobslib=-lx
- X chsize=define
- Xelse
- Xif $test -r /lib/libx.a ; then
- X $echo "Found Xenix library; using chsize()"
- X jobslib=-lx
- X chsize=define
- Xelse
- X chsize=undef
- Xfi
- Xfi
- X: No Steve jokes...
- Xif next; then
- X jobslib='-lsys_s'
- Xfi
- X: see if there are directory access routines out there
- Xif $test -r /usr/lib/libndir.a || $test -r /usr/local/lib/libndir.a ; then
- X $echo "Ndir library found."
- X if $test -r /usr/lib/libndir.a; then
- X ndirlib='-lndir'
- X else
- X ndirlib="/usr/local/lib/libndir.a"
- X fi
- X libndir=define
- X usendir=undef
- X ndirc=''
- X ndiro=''
- X dirtype=direct
- Xelse
- X ndirlib=''
- X libndir=undef
- X if $contains readdir.o libc.list >/dev/null 2>&1 ; then
- X $echo "No ndir library found, but you have readdir() so we'll use that."
- X usendir=undef
- X ndirc=''
- X ndiro=''
- X if sgi ; then
- X dirtype=direct
- X dirinc="<sys/dir.h>"
- X $echo "Using direct directory structure."
- X else
- X if $test -r /usr/include/dirent.h ; then
- X $echo "Using dirent directory structure."
- X dirtype=dirent
- X dirinc="<dirent.h>"
- X else
- X $echo "Using direct directory structure."
- X dirtype=direct
- X dirinc="<sys/dir.h>"
- X fi
- X fi
- X else
- X if xenix; then
- X $echo "Using Xenix readdir() from -lx."
- X usendir=undef
- X ndirc=''
- X ndiro=''
- X dirtype=direct
- X dirinc="<sys/ndir.h>"
- X $echo "Using direct directory structure."
- X else
- X $echo "No ndir library and no readdir()--using ./ndir.c."
- X usendir=define
- X ndirc='ndir.c'
- X ndiro='ndir.o'
- X dirtype=direct
- X fi
- X fi
- Xfi
- X
- X: check if they want threads by default
- Xcase "$threaddef" in
- X F*) dflt="n";;
- X *) dflt="y";;
- Xesac
- X$cat <<EOT
- X
- XTrn has two distinct operating modes (selected by the -x option):
- Xtraditional rn and threaded rn. If you like, trn will check the first
- Xletter of the command name and default to threaded mode (-x) if it is
- Xa 't', or run as traditional rn (+x) if it isn't (this lets you install
- Xas both trn and rn, linked together). Otherwise, you can install trn
- Xto default to threaded rn (-x) no matter what its name is. Would you
- XEOT
- X$echo $n "prefer the latter? (defaults to -x, regardless of name)? [$dflt] $c"
- X. myread
- Xcase "$ans" in
- X'') ans="$dflt";;
- Xesac
- Xcase "$ans" in
- X n*|f*) threaddef='FALSE'
- X ans=' when -x is specified';;
- X *) threaddef='TRUE'
- X ans='';;
- Xesac
- X: check if they want the thread selector used by default
- Xcase "$selectdef" in
- X F*) dflt="n";;
- X *) dflt="y";;
- Xesac
- X$cat <<EOT
- X
- XWhen the -X option is specified, trn will set the default command
- Xfor starting a newsgroup to be the thread selector. Should the -X
- XEOT
- X$echo $n "option be on by default$ans? [$dflt] $c"
- X. myread
- Xcase "$ans" in
- X'') ans="$dflt";;
- Xesac
- Xcase "$ans" in
- X n*|f*) selectdef='FALSE';;
- X *) selectdef='TRUE';;
- Xesac
- X
- X: locate spool directory and check if rrn
- Xcase "$isrrn" in
- Xdefine)
- X dflt="y";;
- X*)
- X dflt="n";;
- Xesac
- Xisrrn=''
- Xwhile $test -z "$isrrn" ; do
- X $echo " "
- X $echo $n "Do you want to build the NNTP versions of trn (trrn) and mthreads? [$dflt] $c"
- X . myread
- X case "$ans" in
- X '') ans="$dflt";;
- X esac
- X case "$ans" in
- X n*)
- X isrrn=undef;;
- X y*)
- X isrrn=define
- X spool=/tmp
- X $echo "net.foobar 00001 00001 y" > .falseactive
- X
- X case "$serverfile" in
- X '') dflt="no default" ;;
- X *) dflt="$serverfile";;
- X esac
- X
- X $cat <<'EOM'
- X
- XTrrn determines the machine to use as a news server by two means:
- X
- X 1. It examines the environment variable NNTPSERVER for
- X a machine name; this allows users to use server machines
- X other than the default.
- X
- X 2. It looks in a file which contains the name of a server
- X machine.
- X
- XYou must create the file mentioned in (2), above. Simply put the name
- Xof the machine you wish to use as your news server in this file.
- XIf you really want, you can use # for comments and blank lines in
- Xthis file as well.
- X
- XEOM
- X
- X ans='blurfl/dyick'
- X while $test ! -r "$ans" ; do
- X $echo $n "Enter the name of the news server file: [$dflt] $c"
- X . myread
- X case "$ans" in
- X '') ans="$dflt";;
- X esac
- X ans=`filexp "$ans"`
- X if $test ! -r $ans ; then
- X $echo "Can't find $ans"
- X ans='blurfl/dyick'
- X fi
- X done
- X serverfile="$ans"
- X
- X case "$NNTPSRC" in
- X '') dflt="no default";;
- X *) dflt="$NNTPSRC";;
- X esac
- X
- X ans='blurfl/dyick'
- X while $test ! -d "$ans"; do
- X $echo $n "Enter the pathname of the NNTP source directory: [$dflt] $c"
- X . myread
- X case "$ans" in
- X '') ans="$dflt";;
- X esac
- X ans=`filexp "$ans"`
- X if $test ! -r $ans/common/nntp.h ; then
- X $echo "Can't find $ans/common/nntp.h!"
- X ans='blurfl/dyick'
- X fi
- X done
- X NNTPSRC="$ans"
- Xcat > server.h <<EOF_SERVE
- X#ifdef SERVER
- X
- XEXT char *getserverbyfile();
- XEXT int server_init();
- XEXT void put_server();
- XEXT int get_server();
- XEXT void close_server();
- X
- X#include "$NNTPSRC/common/nntp.h"
- X#endif
- XEOF_SERVE
- X
- X esac
- X
- Xdone
- X: hack for Unisys NET-5000 and Interactive V/386
- Xcase "$isrrn" in
- Xdefine)
- X: NET-5000
- X if $test -d /usr/include/NET-5000 ; then
- X $echo "I sense you are on a Unisys 5000 computer...poor soul."
- X rrninclude="-I/usr/include/NET-5000 -DEXCELAN -DUSG"
- X socketlib=-lsocket
- X fi
- X: Interactive Unix
- X if $test -f /usr/lib/libinet.a ; then
- X rrninclude="-DUSG"
- X socketlib=-linet
- X fi
- X ;;
- X*) ;;
- Xesac
- X
- X
- Xcase "$spool" in
- X'')
- X dflt=/usr/spool/news
- X ;;
- X*) dflt="$spool";;
- Xesac
- Xcase "$isrrn" in
- Xdefine) ans=/tmp;;
- X*) ans='blurfl/dyick';;
- Xesac
- Xwhile $test ! -d $ans; do
- X $echo " "
- X case "$ans" in
- X blurfl*);;
- X *) $echo "Directory $ans not found.";;
- X esac
- X $echo $n "Where is news spooled (~name ok)? [$dflt] $c"
- X . myread
- X case "$ans" in
- X '') ans="$dflt";;
- X esac
- X spool="$ans"
- X case $spool in
- X ~*)
- X ans=`filexp $spool`
- X $echo "(That is $ans on this particular system.)"
- X case $portable in
- X undef) spool=$ans ;;
- X esac
- X ;;
- X *)
- X ans=$spool
- X ;;
- X esac
- Xdone
- X
- X: check on .thread file placement
- Xcase "$isrrn" in
- Xdefine)
- X case "$threaddir" in
- X ''|'.') dflt="/usr/spool/threads";;
- X *) dflt="$threaddir";;
- X esac
- X $echo " "
- X $echo "Pick a directory where you would like the thread files to"
- X $echo $n "be placed: [$dflt] $c"
- X . myread
- X case "$ans" in
- X ''|'.') ans="$dflt";;
- X esac
- X ;;
- X*)
- X case "$threaddir" in
- X ''|'.') dflt=".";;
- X *) dflt="$threaddir";;
- X esac
- X $cat <<EOT
- X
- XBy default we place each group's .thread file in the same spool
- Xdirectory as the article files. Alternately, you can place the
- Xdata files in a separate directory if space is tight on the news
- Xdrive. Where would you like them put? (use '.' to specify the
- XEOT
- X $echo $n "default): [$dflt] $c"
- X . myread
- X case "$ans" in
- X '') ans="$dflt";;
- X esac
- X ;;
- Xesac
- Xthreaddir="$ans"
- X
- X: locate active file
- Xcase "$active" in
- X'')
- X dflt=$lib/active
- X ;;
- X*) dflt="$active";;
- Xesac
- Xcase "$isrrn" in
- Xdefine) myactive=.falseactive;;
- X*) myactive='blurfl/dyick'
- Xesac
- Xwhile $test ! -f "$myactive"; do
- X $echo " "
- X case "$myactive" in
- X blurfl*);;
- X *) "File $myactive not found.";;
- X esac
- X $echo $n "Where is the active file (~name ok)? [$dflt] $c"
- X . myread
- X case "$ans" in
- X '') ans="$dflt";;
- X esac
- X active="$ans"
- X case $active in
- X ~*)
- X myactive=`filexp $active`
- X $echo "(That is $myactive on this particular system.)"
- X case $portable in
- X undef) active=$myactive ;;
- X esac
- X ;;
- X *)
- X myactive=$active
- X ;;
- X esac
- X if $test -d $myactive ; then
- X myactive=$myactive/active
- X active=$active/active
- X fi
- Xdone
- X
- X: check for 2.10.2 and above
- X$echo " "
- Xif $contains ' [0-9][0-9]* [0-9]' "$myactive" >/dev/null 2>&1; then
- X case "$norelay" in
- X undef) dflt="y";;
- X *) dflt="n";;
- X esac
- X case "$isrrn" in
- X define)
- X $echo "Is your NNTP server running an old version of news software," ;;
- X *) $echo "Is your system running an old version of news software," ;;
- X esac
- X $echo $n "predating B News 2.10.3? [${dflt}] $c"
- X . myread
- X case "$ans" in
- X '') ans=$dflt;;
- X esac
- X case "$ans" in
- X y*)
- X norelay='undef'
- X $echo "Looks like you are running at least 2.10.2 news."
- X ;;
- X *) norelay='define' ;;
- X esac
- X mininact=define
- Xelse
- X $echo "It doesn't look like you are running 2.10.2 news yet. Are you planning"
- X $echo $n "to install it in the near future? [y] $c"
- X . myread
- X case $ans in
- X n*) mininact=undef ;;
- X *) mininact=define ;;
- X esac
- X norelay='undef'
- Xfi
- X
- X
- X: check for void type
- X$echo " "
- X$echo "Checking to see if your C compiler groks the void type..."
- X$cat >try.c <<'EOCP'
- Xvoid main();
- XEOCP
- Xif cc -c try.c >/dev/null 2>&1 ; then
- X novoid='undef'
- X $echo "Yup, it does."
- Xelse
- X novoid='define'
- X $echo "Nope, it doesn't (boo hiss). I will substitute int."
- Xfi
- X$rm try.*
- X
- X: find out which shell people like to use most
- Xans='blurfl/dyick'
- Xwhile $test ! -f "$ans" ; do
- X case $ans in
- X blurfl*) ;;
- X *) $echo "$ans does not appear to exist." ;;
- X esac
- X case "$pref" in
- X '')
- X if $test -f /bin/ksh; then
- X dflt='/bin/ksh'
- X else
- X if $test -f /bin/csh; then
- X dflt='/bin/csh'
- X else
- X dflt='/bin/sh'
- X fi
- X fi
- X ;;
- X *) dflt="$pref";;
- X esac
- X $echo " "
- X $echo "Give the full path name of the shell most people like to use on your"
- X $echo $n "system: [$dflt] $c"
- X . myread
- X case $ans in
- X '') ans=$dflt ;;
- X esac
- Xdone
- Xpref=$ans
- X
- X: locate the preferred pager for this system
- Xcase "$pager" in
- X'')
- X case $pg in
- X /*) dflt=$pg
- X ;;
- X esac
- X case $more in
- X /*) dflt=$more
- X ;;
- X esac
- X case $dflt in
- X '') dflt=/usr/ucb/more
- X ;;
- X esac
- X ;;
- X*) dflt="$pager";;
- Xesac
- Xpager='blurfl/dyick'
- Xwhile $test ! -f "$pager" ; do
- X case $pager in
- X blurfl*)
- X $echo " "
- X $echo "(If your kernel does terminal paging then you may answer this with '/bin/cat'.)"
- X ;;
- X /*) $echo "$pager does not appear to exist."
- X $echo " "
- X ;;
- X *) $echo "Please give the full path name."
- X $echo " "
- X ;;
- X esac
- X $echo $n "What pager is used on your system? [$dflt] $c"
- X . myread
- X pager="$ans"
- X case $pager in
- X '') pager="$dflt" ;;
- X esac
- Xdone
- X
- X: determine default editor
- Xcase "$defeditor" in
- X'')
- X dflt=`loc vi /usr/ucb $pth`
- X ;;
- X*) dflt="$defeditor"
- X ;;
- Xesac
- Xdefeditor='blurfl/dyick'
- Xwhile $test ! -f "$defeditor" ; do
- X case $defeditor in
- X blurfl*) ;;
- X *) $echo "$defeditor does not appear to exist." ;;
- X esac
- X $echo " "
- X $echo $n "What is the default editor on your system? [$dflt] $c"
- X . myread
- X defeditor="$ans"
- X case $defeditor in
- X '') defeditor=$dflt ;;
- X esac
- Xdone
- X
- X: determine mailer for Rnmail to use
- X$echo " "
- Xif $test ! -f "$mailer"; then
- X mailer=
- X for x in /usr/lib/sendmail /bin/smail /usr/bin/smail \
- X /usr/lib/mail/execmail; do
- X if $test "$mailer" = "" -a -f $x; then
- X mailer=$x
- X fi
- X done
- X if $test ! -f "$mailer"; then
- X if usg && $test -f $libexp/recmail; then
- X mailer=$libexp/recmail
- X else
- X if s5uniq && $test -f /usr/bin/mailx; then
- X mailer=/usr/bin/mailx
- X else
- X mailer=/bin/mail
- X fi
- X fi
- X fi
- Xfi
- X$echo "Mail sender is $mailer"
- X
- X: check for internet mailer
- Xcase "$internet" in
- Xdefine) dflt=y;;
- Xundef) dflt=n;;
- X*)
- X case "$isrrn" in
- X define) dflt=y ;;
- X *) dflt=n ;;
- X esac
- X ;;
- Xesac
- Xcat <<EOM
- X
- XSome newer mailers can deliver mail to addresses of the INTERNET persuasion,
- Xsuch as user@host.UUCP. Other older mailers require the complete path to
- Xthe destination to be specified in the address. Does your mailer understand
- XEOM
- X$echo $n "INTERNET addresses? [$dflt] $c"
- X. myread
- Xcase "$ans" in
- X'') ans=$dflt;;
- Xesac
- Xcase "$ans" in
- Xy*) internet=define;;
- X*) internet=undef;;
- Xesac
- X
- X: determine where public executables go
- Xcase "$rnbin" in
- X'')
- X dflt=`loc . /bin /usr/local/bin /usr/lbin /usr/local /usr/bin`
- X ;;
- X*) dflt="$rnbin"
- X ;;
- Xesac
- Xrnbin='blurfl/dyick'
- Xwhile $test ! -d "$rnbin" ; do
- X case $rnbin in
- X blurfl*) ;;
- X *) $echo "$rnbin does not appear to exist." ;;
- X esac
- X $echo " "
- X $echo $n "Where do you want to put the public executables? [$dflt] $c"
- X . myread
- X rnbin="$ans"
- X rnbin=`filexp $rnbin`
- X case $rnbin in
- X '') rnbin=$dflt ;;
- X esac
- Xdone
- X
- X: determine where private executables go
- Xcase "$rnlib" in
- X'')
- X case "$isrrn" in
- X define) dflt=/usr/local/lib/trn ;;
- X *) dflt=$lib/trn ;;
- X esac
- X ;;
- X*) dflt="$rnlib"
- X ;;
- Xesac
- X$echo " "
- X$echo "Trn has a number of auxiliary programs that need not be visible to the"
- X$echo "whole world. Where do you want to put these private executables?"
- X$echo $n "[$dflt] (~name ok) $c"
- X. myread
- Xrnlib="$ans"
- Xcase $rnlib in
- X '') rnlib=$dflt ;;
- Xesac
- Xcase $portable in
- Xundef)
- X rnlib=`filexp $rnlib`
- X ;;
- Xesac
- X: must not allow self reference
- Xcase $rnlib in
- X /*)
- X filexp=$rnlib/filexp
- X ;;
- X *)
- X filexp=`pwd`/filexp
- X ;;
- Xesac
- X
- X: get the local distribution prefixes
- Xif $test -f $libexp/sys ; then
- X $sed <$libexp/sys -n -e "s/^$sitename://p" | \
- X $sed -e "s/:.*//" -e "s/,/ /g" | tr ' ' '\012' | \
- X $sed -e "/^to./d" -e "/^net$/d" -e "/^fa$/d" -e "/^mod$/d" > .distlist
- Xfi
- X
- X$cat <<'EOH'
- X
- XDistribution groups are the things you use on the Distribution line to limit
- Xwhere an article will go to. You are likely to be a member of several
- Xdistribution groups, such as organization, city, state, province, country,
- Xcontinent, etc. For example, Los Angeles has the distribution prefix "la",
- XNew Jersey has the prefix "nj", and Europe has the prefix "eunet".
- X
- XThe categories you will be asked are:
- X
- Xlocal organization (Could be just one machine or a cluster or an office)
- Xorganization att, dec, kgb, ...
- Xcity la, ny, mosc, ...
- Xstate/province ca, nj, bc, ...
- Xcountry usa, can, rok, whatever
- Xcontinent na (North America, not "Not Applicable"), asia, etc.
- X
- X(If you don't have a distribution prefix in any of these categories then
- Xjust hit return.)
- X
- XEOH
- Xif $test -f .distlist; then
- X distlist=`tr '\012' ' ' <.distlist`
- X if $test "$distlist" ; then
- X $echo "(These are the distributions in your sys file: $distlist)"
- X $echo " "
- X fi
- Xfi
- Xcase "$locpref" in
- X'') dflt="";;
- X*) dflt="[$locpref] ";;
- Xesac
- X$echo $n "What is the distribution prefix for your local organization? $dflt$c"
- X. myread
- Xcase "$ans" in
- X'') ;;
- X*) locpref="$ans";;
- Xesac
- Xcase $locpref in
- X '') locpref=none ;;
- Xesac
- Xcase "$orgpref" in
- X'') dflt="";;
- X*) dflt="[$orgpref] ";;
- Xesac
- X$echo $n "What is the distribution prefix for your organization? $dflt$c"
- X. myread
- Xcase "$ans" in
- X'') ;;
- X*) orgpref="$ans";;
- Xesac
- Xcase $orgpref in
- X '') orgpref=none ;;
- Xesac
- Xcase "$citypref" in
- X'') dflt="";;
- X*) dflt="[$citypref] ";;
- Xesac
- X$echo $n "What is the distribution prefix for your city? $dflt$c"
- X. myread
- Xcase "$ans" in
- X'') ;;
- X*) citypref="$ans";;
- Xesac
- Xcase $citypref in
- X '') citypref=none ;;
- Xesac
- Xcase "$statepref" in
- X'') dflt="";;
- X*) dflt="[$statepref] ";;
- Xesac
- X$echo $n "What is the distribution prefix for your state/province? $dflt$c"
- X. myread
- Xcase "$ans" in
- X'') ;;
- X*) statepref="$ans";;
- Xesac
- Xcase $statepref in
- X '') statepref=none ;;
- Xesac
- Xcase "$cntrypref" in
- X'') dflt="";;
- X*) dflt="[$cntrypref] ";;
- Xesac
- X$echo $n "What is the distribution prefix for your country? $dflt$c"
- X. myread
- Xcase "$ans" in
- X'') ;;
- X*) cntrypref="$ans";;
- Xesac
- Xcase $cntrypref in
- X '') cntrypref=none ;;
- Xesac
- Xcase "$contpref" in
- X'') dflt="";;
- X*) dflt="[$contpref] ";;
- Xesac
- X$echo $n "What is the distribution prefix for your continent? $dflt$c"
- X. myread
- Xcase "$ans" in
- X'') ;;
- X*) contpref="$ans";;
- Xesac
- Xcase $contpref in
- X '') contpref=none ;;
- Xesac
- X
- X$echo " "
- X$echo "If you have any other distribution groups you will need to edit Pnews"
- X$echo "and newsetup to add them."
- X$echo " "
- X
- X: determine root id
- Xrootid=`$sed </etc/passwd -e "/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*"'$'"/\1/" -e "q" -e "}" -e "d"`
- Xcase $rootid in
- X '') rootid=0 ;;
- X *) $echo "Root uid = $rootid" ;;
- Xesac
- X
- X: weed out incompatibilities
- Xcase $douname in
- X define) whoami=undef ;;
- Xesac
- X
- X: preserve RCS keywords in files with variable substitution, grrr
- XLog='$Log'
- XHeader='$Header'
- X
- X: Warnings
- Xif v7; then
- X cat <<'EOM'
- X
- XNOTE: the V7 compiler may ignore some #undefs that trn uses. If so, you will
- Xget messages about redefining EXT. Some V7 compilers also have difficulties
- Xwith #defines near buffer boundaries, so beware. You may have to play with
- Xthe spacing in common.h.
- XEOM
- Xfi
- X
- Xif pdp11; then
- X cat <<'EOM'
- X
- XNOTE: the PDP-11 does not have enough data space to do subject caching
- Xreliably. That feature will be disabled automatically. Subject searching
- Xwill tend to be slow.
- XEOM
- Xfi
- Xcase "$isrrn" in
- X define) ;;
- X *) socketlib=""
- X rrninclude=""
- X ;;
- Xesac
- X
- X$echo " "
- X$echo "End of configuration questions."
- X$echo " "
- X
- X: create config.sh file
- X$echo " "
- X$echo "Creating config.sh..."
- X$spitshell <<EOT >config.sh
- X$startsh
- X# config.sh
- X# This file was produced by running the Configure script.
- X
- Xn='$n'
- Xc='$c'
- Xlibc='$libc'
- Xeunicefix='$eunicefix'
- Xeunice='$eunice'
- Xcpp='$cpp'
- Xshsharp='$shsharp'
- Xstartsh='$startsh'
- Xspitshell='$spitshell'
- Xtest='$test'
- Xexpr='$expr'
- Xsed='$sed'
- Xecho='$echo'
- Xcat='$cat'
- Xrm='$rm'
- Xmv='$mv'
- Xcp='$cp'
- Xtail='$tail'
- Xtr='$tr'
- Xmkdir='$mkdir'
- Xsort='$sort'
- Xuniq='$uniq'
- Xinews='$inews'
- Xgrep='$grep'
- Xegrep='$egrep'
- Xnidump='$nidump'
- Xypmatch='$ypmatch'
- Xcontains='$contains'
- Xlib='$lib'
- Xlibexp='$libexp'
- Xnametype='$nametype'
- Xcc='$cc'
- Xiandd='$iandd'
- Xinclude='$include'
- Xrrninclude='$rrninclude'
- Xtermlib='$termlib'
- Xjobslib='$jobslib'
- Xsocketlib='$socketlib'
- Xgetcwd='$getcwd'
- Xgetwd='$getwd'
- Xdirtype='$dirtype'
- Xndirlib='$ndirlib'
- Xlibndir='$libndir'
- Xusendir='$usendir'
- Xndirc='$ndirc'
- Xndiro='$ndiro'
- Xpager='$pager'
- Xmailer='$mailer'
- Xinternet='$internet'
- Xrnbin='$rnbin'
- Xfilexp='$filexp'
- Xdistlist='$distlist'
- XLog='$Log'
- XHeader='$Header'
- Xsitename='$sitename'
- Xhostfile='$hostfile'
- Xdomain='$domain'
- Xorgname='$orgname'
- Xisadmin='$isadmin'
- Xnewsadmin='$newsadmin'
- Xrnlib='$rnlib'
- Xmansrc='$mansrc'
- Xmanext='$manext'
- Xmaildir='$maildir'
- Xspool='$spool'
- Xactive='$active'
- Xmyactive='$myactive'
- Xmininact='$mininact'
- Xpref='$pref'
- Xdefeditor='$defeditor'
- Xrootid='$rootid'
- Xmboxchar='$mboxchar'
- Xlocpref='$locpref'
- Xorgpref='$orgpref'
- Xcitypref='$citypref'
- Xstatepref='$statepref'
- Xcntrypref='$cntrypref'
- Xcontpref='$contpref'
- Xstrchr='$strchr'
- Xmemcpy='$memcpy'
- Xrename='$rename'
- Xtruncate='$truncate'
- Xchsize='$chsize'
- Xtzset='$tzset'
- Xthreaddef='$threaddef'
- Xselectdef='$selectdef'
- Xthreaddir='$threaddir'
- Xnovoid='$novoid'
- Xnovfork='$novfork'
- Xportable='$portable'
- Xpassnam='$passnam'
- Xberknam='$berknam'
- Xusgnam='$usgnam'
- Xwhoami='$whoami'
- Xtermio='$termio'
- Xfcntl='$fcntl'
- Xioctl='$ioctl'
- Xptem='$ptem'
- Xnormsig='$normsig'
- Xsigblock='$sigblock'
- Xsigret='$sigret'
- Xgetuidgid='$getuidgid'
- Xhavetlib='$havetlib'
- Xgetpwent='$getpwent'
- Xgethostname='$gethostname'
- Xdouname='$douname'
- Xphostname='$phostname'
- Xhostcmd='$hostcmd'
- Xnorelay='$norelay'
- Xrdchk='$rdchk'
- Xisrrn='$isrrn'
- Xserverfile='$serverfile'
- XNNTPSRC='$NNTPSRC'
- XCONFIG=true
- XCTRLA='$CTRLA'
- Xhiddennet='$hiddennet'
- XEOT
- X
- X: create config.h file
- X$echo " "
- X$echo "Creating config.h..."
- Xcase "$threaddir" in
- X'.') threaddir='/usr/spool/threads'
- X tdir='/*';;
- X*) tdir='';;
- Xesac
- Xcase "$strchr" in
- Xdefine) strchr='';;
- X*) strchr='/*';;
- Xesac
- Xcase "$memcpy" in
- Xdefine) memcpy='';;
- X*) memcpy='/*';;
- Xesac
- Xcase "$novoid" in
- Xdefine) novoid='';;
- X*) novoid='/*';;
- Xesac
- Xcase "$novfork" in
- Xdefine) novfork='';;
- X*) novfork='/*';;
- Xesac
- Xcase "$phostname" in
- Xdefine) phostname='';;
- X*) phostname='/*';;
- Xesac
- Xcase "$isrrn" in
- Xdefine) isrrn2='';;
- X*) isrrn2='/*';;
- Xesac
- Xcase "$hostfile" in
- X'') usehostfile='/*';;
- X*) usehostfile='';;
- Xesac
- X$cat <<EOT >config.h
- X/* config.h
- X * This file was produced by running the Configure script.
- X * Feel free to modify any of this as the need arises.
- X */
- X
- X/* name of the site. May be overridden by HOSTFILE, gethostname, uname, etc. */
- X#define SITENAME "$sitename"
- X$usehostfile#define HOSTFILE "$hostfile"
- X
- X/* domain name for the site */
- X#define OURDOMAIN "$domain"
- X
- X/* name of the organization, may be a file name */
- X#define ORGNAME "$orgname"
- X
- X/* login name of news administrator, if any. */
- X#$isadmin NEWSADMIN "$newsadmin"
- X
- X/* news library, may use only ~ and %l expansion */
- X#define LIB "$lib"
- X
- X/* rn private library, may use ~ expansion, %x and %l */
- X#define RNLIB "$rnlib"
- X
- X/* location of the news spool directory, may use ~ expansion, %x and %l */
- X#define SPOOL "$spool"
- X
- X/* put thread files in each spool directory, unless THREAD_DIR is defined */
- X$tdir#define THREAD_DIR "$threaddir" /* base directory */
- X
- X/* save in subdirectories unless LONG_THREAD_NAMES & THREAD_DIR are defined */
- X#undef LONG_THREAD_NAMES /* not for short-name systems */
- X
- X/* location of the active file, may use ~ expansion, %x and %l */
- X#define ACTIVE "$active"
- X
- X/* location of spooled mail */
- X#define MAILFILE "$maildir"
- X
- X/* default shell--ok to be a slow shell like csh */
- X#define PREFSHELL "$pref"
- X
- X/* default editor */
- X#define DEFEDITOR "$defeditor"
- X
- X/* root uid */
- X#define ROOTID $rootid
- X
- X/* what is the first character of a mailbox? */
- X#define MBOXCHAR '$mboxchar'
- X
- X/* how to cancel an article */
- X#define CANCEL "$inews -h <%h"
- X
- X/* distribution groups */
- X#define LOCDIST "$locpref"
- X#define ORGDIST "$orgpref"
- X#define CITYDIST "$citypref"
- X#define STATEDIST "$statepref"
- X#define CNTRYDIST "$cntrypref"
- X#define CONTDIST "$contpref"
- X
- X#define THREAD_INIT $threaddef
- X#define SELECT_INIT $selectdef
- X
- X$strchr#define index strchr /* cultural */
- X$strchr#define rindex strrchr /* differences? */
- X$memcpy#define bcopy(s,d,n) memcpy((char*)d,(char*)s,(int)n) /* Different */
- X$memcpy#define bzero(d,n) memset((char*)d,0,(int)n) /* flavors. */
- X#$rename RENAME /* is rename() a system call? */
- X#$truncate TRUNCATE /* is truncate() available? */
- X#$chsize CHSIZE /* is chsize() available? */
- X#$tzset TZSET /* modern timezone functions? */
- X$novoid#define void int /* is void to be avoided? */
- X$novfork#define vfork fork /* is vfork too virtual? */
- X#$eunice EUNICE /* no linking? */
- X#$eunice VMS /* not currently used, here just in case */
- X#$getcwd GETCWD /* do we have getcwd()? */
- X#$getwd GETWD /* do we have getwd()? */
- X#$usendir USENDIR /* include ndir.c? */
- X#$libndir LIBNDIR /* include /usr/include/ndir.h? */
- X#define DIRTYPE $dirtype
- X#ifndef USENDIR
- X#define DIRINC $dirinc
- X#endif
- X#$mininact MININACT /* include 2.10.2 optimization? */
- X#$portable PORTABLE /* do we do extra lookups to start up? */
- X#$passnam PASSNAMES /* do names come from the passwd file? */
- X /* (undef to take name from ~/.fullname) */
- X#$berknam BERKNAMES /* if so, are they Berkeley format? */
- X /* (that is, ":name,stuff:") */
- X#$usgnam USGNAMES /* or are they USG format? */
- X /* (that is, ":stuff-name(stuff):") */
- X#$whoami WHOAMI /* should we include whoami.h? */
- X#$rdchk RDCHK /* do we have rdchk()? */
- X#$termio TERMIO /* is this a termio system? */
- X#$fcntl FCNTL /* should we include fcntl.h? */
- X#$ioctl IOCTL /* are ioctl args all defined in one place? */
- X#$ptem PTEM /* has the ptem.h include file ? */
- X#$normsig NORMSIG /* use signal rather than sigset? */
- X#$sigblock SIGBLOCK /* use sigblock and sigsetmask */
- X#define SIGRET $sigret /* what does signal() return? */
- X#$havetlib HAVETERMLIB /* do we have termlib-style routines? */
- X#$getuidgid GETUIDGID /* allow setuid (if possible) */
- X#$getpwent GETPWENT /* should we include getpwent? */
- X#$internet INTERNET /* does our mailer do INTERNET addressing? */
- X#$gethostname GETHOSTNAME /* do we have a gethostname function? */
- X#$douname DOUNAME /* do we have a uname function? */
- X$phostname#define PHOSTNAME "$hostcmd" /* how to get host name with popen */
- X#$norelay NORELAY /* 2.10.3 doesn't have Relay-Version line */
- X#$isrrn SERVER /* rrn server code */
- X$isrrn2#define SERVER_FILE "$serverfile" /* news server file */
- X#$hiddennet HIDDENNET /* hide the host inside the domain? */
- XEOT
- X
- XCONFIG=true
- X
- X$rm -f libc.list .distlist kit*isdone
- X
- X$echo " "
- X$echo "Doing variable substitutions on various files..."
- X$echo " "
- Xset `$grep <MANIFEST '\.SH' | awk '{print $1}'`
- Xfor file in $*; do
- X . $file
- Xdone
- X
- X$echo " "
- X$echo 'Now you need to generate make dependencies by running "makedepend".'
- X$echo 'You might prefer to run it in background: "makedepend > makedepend.out &"'
- X$echo $n "Would you like me to run it for you (it takes quite a while)? [n] $c"
- X. myread
- Xcase "$ans" in
- Xy*) makedepend;;
- Xesac
- X$rm -f myread
- X: end of Configure
- END_OF_FILE
- if test 43215 -ne `wc -c <'Configure.2'`; then
- echo shar: \"'Configure.2'\" unpacked with wrong size!
- fi
- # end of 'Configure.2'
- fi
- if test -f 'head.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'head.h'\"
- else
- echo shar: Extracting \"'head.h'\" \(3993 characters\)
- sed "s/^X//" >'head.h' <<'END_OF_FILE'
- X/* $Header: head.h,v 4.3.3.2 91/01/16 02:41:17 davison Trn $
- X *
- X * $Log: head.h,v $
- X * Revision 4.3.3.2 91/01/16 02:41:17 davison
- X * Added optional prototyping.
- X *
- X * Revision 4.3.3.1 90/06/20 22:37:18 davison
- X * Initial Trn Release
- X *
- X * Revision 4.3 85/05/01 11:38:31 lwall
- X * Baseline for release with 4.3bsd.
- X *
- X */
- X
- X#define HEAD_FIRST 1
- X
- X/* types of header lines (if only C really believed in enums)
- X * (These must stay in alphabetic order at least in the first letter.
- X * Within each letter it helps to arrange in increasing likelihood.)
- X */
- X
- X#define PAST_HEADER 0 /* body */
- X#define SOME_LINE 1 /* unrecognized */
- X#define ARTID_LINE 2 /* article-i.d. */
- X#define APPR_LINE 3 /* approved */
- X#define DIST_LINE 4 /* distribution */
- X#define DATE_LINE 5 /* date */
- X#define RECEIVED_LINE 6 /* date-received */
- X#define EXPIR_LINE 7 /* expires */
- X#define FOLLOW_LINE 8 /* followup-to */
- X#define FROM_LINE 9 /* from */
- X#define KEYW_LINE 10 /* keywords */
- X#define LINES_LINE 11 /* lines */
- X#define MESSID_LINE 12 /* message-id */
- X#define NFFR_LINE 13 /* nf-from */
- X#define NFID_LINE 14 /* nf-id */
- X#define NGS_LINE 15 /* newsgroups */
- X#define ORG_LINE 16 /* organization */
- X#define PATH_LINE 17 /* path */
- X#define POSTED_LINE 18 /* posted */
- X#define PVER_LINE 19 /* posting-version */
- X#define REPLY_LINE 20 /* reply-to */
- X#define REFS_LINE 21 /* references */
- X#define RVER_LINE 22 /* relay-version */
- X#define SENDER_LINE 23 /* sender */
- X#define SUMRY_LINE 24 /* summary */
- X#define SUBJ_LINE 25 /* subject */
- X#define XREF_LINE 26 /* xref */
- X
- X#define HEAD_LAST 27 /* one more than the last one above */
- X
- Xstruct headtype {
- X char *ht_name; /* header line identifier */
- X#ifdef pdp11
- X short ht_minpos;
- X short ht_maxpos;
- X#else
- X ART_POS ht_minpos; /* pointer to beginning of line in article */
- X ART_POS ht_maxpos; /* pointer to end of line in article */
- X#endif
- X char ht_length; /* could make these into nybbles but */
- X char ht_flags; /* it wouldn't save space normally */
- X}; /* due to alignment considerations */
- X
- X#define HT_HIDE 1 /* -h on this line */
- X#define HT_MAGIC 2 /* do any special processing on this line */
- X
- X/* This array must stay in the same order as the list above */
- X
- X#ifndef DOINIT
- XEXT struct headtype htype[HEAD_LAST];
- X#else
- Xstruct headtype htype[HEAD_LAST] = {
- X /* name minpos maxpos length flag */
- X {"BODY", 0, 0, 4, 0 },
- X {"unrecognized", 0, 0, 12, 0 },
- X {"article-i.d.", 0, 0, 12, HT_HIDE },
- X {"approved", 0, 0, 8, HT_HIDE },
- X {"distribution", 0, 0, 12, 0 },
- X#ifdef USETHREADS
- X {"date", 0, 0, 4, HT_MAGIC },
- X#else
- X {"date", 0, 0, 4, 0 },
- X#endif
- X {"date-received", 0, 0, 13, 0 },
- X {"expires", 0, 0, 7, HT_HIDE|HT_MAGIC},
- X {"followup-to", 0, 0, 11, 0 },
- X {"from", 0, 0, 4, HT_MAGIC },
- X {"keywords", 0, 0, 8, 0 },
- X {"lines", 0, 0, 5, 0 },
- X {"message-id", 0, 0, 10, HT_HIDE },
- X {"nf-from", 0, 0, 7, HT_HIDE },
- X {"nf-id", 0, 0, 5, HT_HIDE },
- X {"newsgroups", 0, 0, 10, HT_MAGIC|HT_HIDE},
- X {"organization", 0, 0, 12, 0 },
- X {"path", 0, 0, 4, HT_HIDE },
- X {"posted", 0, 0, 6, HT_HIDE },
- X {"posting-version", 0, 0, 15, HT_HIDE },
- X {"reply-to", 0, 0, 8, HT_HIDE },
- X {"references", 0, 0, 10, HT_HIDE },
- X {"relay-version", 0, 0, 13, HT_HIDE },
- X {"sender", 0, 0, 6, HT_HIDE },
- X {"summary", 0, 0, 7, 0 },
- X {"subject", 0, 0, 7, HT_MAGIC },
- X {"xref", 0, 0, 4, HT_HIDE }
- X};
- X#endif
- X
- X#ifdef ASYNC_PARSE
- XEXT ART_NUM parsed_art INIT(0);
- X#endif
- X
- XEXT char in_header INIT(0); /* are we decoding the header? */
- X
- X#ifdef CACHESUBJ
- X EXT char **subj_list INIT(Null(char **));
- X#endif
- X
- Xvoid head_init ANSI((void));
- Xint set_line_type ANSI((char *,char *));
- Xvoid start_header ANSI((ART_NUM));
- Xbool parseline ANSI((char *,int,int));
- X#ifdef ASYNC_PARSE
- X int parse_maybe ANSI((ART_NUM));
- X#endif
- Xchar *fetchsubj ANSI((ART_NUM,bool,bool));
- Xchar *fetchlines ANSI((ART_NUM,int));
- X
- X#ifdef DEBUGGING
- Xint dumpheader ANSI((char *));
- X#endif
- END_OF_FILE
- if test 3993 -ne `wc -c <'head.h'`; then
- echo shar: \"'head.h'\" unpacked with wrong size!
- fi
- # end of 'head.h'
- fi
- if test -f 'patchlevel' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'patchlevel'\"
- else
- echo shar: Extracting \"'patchlevel'\" \(11 characters\)
- sed "s/^X//" >'patchlevel' <<'END_OF_FILE'
- XTrn v1.0.3
- END_OF_FILE
- if test 11 -ne `wc -c <'patchlevel'`; then
- echo shar: \"'patchlevel'\" unpacked with wrong size!
- fi
- # end of 'patchlevel'
- fi
- if test -f 'zab' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'zab'\"
- else
- echo shar: Extracting \"'zab'\" \(3293 characters\)
- sed "s/^X//" >'zab' <<'END_OF_FILE'
- X File Name Archive # Description
- X----------------------------------------------------------
- XREADME 1
- XMANIFEST 12
- XConfigure.1 3
- XConfigure.2 1
- XEXTERN.h 14
- XHACKERSGUIDE 12
- XINIT 6
- XINTERN.h 14
- XMakefile.SH 12
- XNEW 13
- XPnews.1 13
- XPnews.SH 9
- XRnmail.1 13
- XRnmail.SH 12
- XWishlist 14
- Xaddng.c 13
- Xaddng.h 14
- Xart.c 4
- Xart.h 14
- Xartio.c 13
- Xartio.h 2
- Xartsrch.c 12
- Xartsrch.h 14
- Xartstate.h 14
- Xbackpage.c 13
- Xbackpage.h 14
- Xbits.c 2
- Xbits.h 11
- Xcheat.c 6
- Xcheat.h 14
- Xcommon.h 6
- Xfinal.c 12
- Xfinal.h 14
- Xgetactive.c 13
- Xgetdate.y 9
- Xhead.c 10
- Xhead.h 1
- Xhelp.c 9
- Xhelp.h 14
- Xinit.c 11
- Xinit.h 14
- Xintrp.c 5
- Xintrp.h 14
- Xkfile.c 12
- Xkfile.h 14
- Xlast.c 14
- Xlast.h 14
- Xmakedepend.SH 13
- Xmakedir.SH 14
- Xmakekit 14
- Xmbox.saver.SH 13
- Xmt-lint.h 14
- Xmt-process.c 5
- Xmt-read.c 10
- Xmt-write.c 7
- Xmt.check.SH 3
- Xmthreads.1 11
- Xmthreads.c 6
- Xmthreads.h 13
- Xndir.c 13
- Xndir.h 13
- Xnewsetup.1 13
- Xnewsetup.SH 13
- Xnewsgroups.1 13
- Xnewsgroups.SH 13
- Xnewsnews.SH 14
- Xng.c 4
- Xng.h 14
- Xngdata.c 11
- Xngdata.h 14
- Xngsrch.c 13
- Xngsrch.h 14
- Xngstuff.c 11
- Xngstuff.h 14
- Xnorm.saver.SH 14
- Xonly.c 13
- Xonly.h 14
- Xpatchlevel 1
- Xrcln.c 10
- Xrcln.h 14
- Xrcstuff.c 7
- Xrcstuff.h 14
- Xrespond.c 8
- Xrespond.h 14
- Xrn.c 9
- Xrn.h 14
- Xrt-rn.c 8
- Xrt-select.c 8
- Xrthreads.c 12
- Xrthreads.h 13
- Xsearch.c 10
- Xsearch.h 14
- Xsw.c 10
- Xsw.h 14
- Xterm.c 7
- Xterm.h 11
- Xthreads.c 13
- Xthreads.h 13
- Xtrn.1.1 3
- Xtrn.1.2 2
- Xunipatch.c 14
- Xutil.c 11
- Xutil.h 14
- Xuudecode.c 12
- Xuudecode.h 8
- Xzab 1 This shipping list
- END_OF_FILE
- if test 3293 -ne `wc -c <'zab'`; then
- echo shar: \"'zab'\" unpacked with wrong size!
- fi
- # end of 'zab'
- fi
- echo shar: End of archive 1 \(of 14\).
- cp /dev/null ark1isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 14 archives.
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- else
- echo You still must unpack the following archives:
- echo " " ${MISSING}
- fi
- exit 0
-